<?php

if(!(isset($_SESSION))) session_start();

require_once ("./extras/usuari.php");
require_once ("./extras/event.php");
require_once ("./extras/invitat.php");

/* Primero recojo todos los eventos publicos del usuario */
$data_usuari = unserialize($_SESSION["usuari"]);
$mail = $data_usuari->getMail();
$ContingutFitxerFinal = "BEGIN:VCALENDAR
PRODID:-//Google Inc//Google Calendar 70.9054//EN
VERSION:2.0
CALSCALE:GREGORIAN
METHOD:PUBLISH
X-WR-CALNAME:";
$ContingutFitxerFinal = $ContingutFitxerFinal . $data_usuari->getMail();
$ContingutFitxerFinal = $ContingutFitxerFinal ."\nX-WR-TIMEZONE:Europe/Madrid";

/* Obtenim el total de events del usuari privats */
$nombreEvents = $data_usuari->getNumberOfEvents();
for($i = 0; $i < $nombreEvents;$i++ ){
    $ContingutFitxerFinal = $ContingutFitxerFinal ."\nBEGIN:VEVENT";
    $ContingutFitxerFinal = $ContingutFitxerFinal ."\nDTSTART:".retornaFecha($data_usuari->getEventUsuari($i)->getDataInici(),$data_usuari->getEventUsuari($i)->getHoraInici());
    $ContingutFitxerFinal = $ContingutFitxerFinal ."\nDTEND:".retornaFecha($data_usuari->getEventUsuari($i)->getDataInici(),$data_usuari->getEventUsuari($i)->getHoraFi());
    $ContingutFitxerFinal = $ContingutFitxerFinal ."\nDESCRIPTION:".$data_usuari->getEventUsuari($i)->getMotiu();
    $ContingutFitxerFinal = $ContingutFitxerFinal ."\nLOCATION:Treball oficina";
    $ContingutFitxerFinal = $ContingutFitxerFinal ."\nSEQUENCE:0";
    $ContingutFitxerFinal = $ContingutFitxerFinal ."\nSTATUS:CONFIRMED";
    $ContingutFitxerFinal = $ContingutFitxerFinal ."\nSUMMARY:".$data_usuari->getEventUsuari($i)->getTitol();
    $ContingutFitxerFinal = $ContingutFitxerFinal ."\nTRANSP:OPAQUE:";
    $ContingutFitxerFinal = $ContingutFitxerFinal ."\nEND:VEVENT";

}
$ContingutFitxerFinal = $ContingutFitxerFinal ."\nEND:VCALENDAR";

//print $ContingutFitxerFinal;
$data_usuari = serialize($_SESSION["usuari"]);


/*Escrivim fitxer*/
$fp  = fopen("extras/export/calendariExportat_$mail.ics", "w");

fwrite_stream($fp, $ContingutFitxerFinal);
fclose($fp);

print "calendariExportat_$mail.ics";

/*
 * Funcio per retornar data en versió adequada per ics
 * 20130101T120400Z
 */
function retornaFecha($DataInici, $HoraInici) {
    $horaRetornada;
    $Data = split("-", $DataInici);
    $Hora = split(":", $HoraInici);
    $horaRetornada =  $horaRetornada.$Data[0];
    $horaRetornada =  $horaRetornada.$Data[1];
    $horaRetornada =  $horaRetornada.$Data[2];
    $horaRetornada =  $horaRetornada."T";
    $horaRetornada =  $horaRetornada.$Hora[0];
    $horaRetornada =  $horaRetornada.$Hora[1];
    $horaRetornada =  $horaRetornada.$Hora[2];
    $horaRetornada =  $horaRetornada."Z";
    
  
    return $horaRetornada;
}

/* Funcio per escriure un fitxer
 * Entra fitxer + string
 */
function fwrite_stream($fp, $string) {
    for ($written = 0; $written < strlen($string); $written += $fwrite) {
        $fwrite = fwrite($fp, substr($string, $written));
        if ($fwrite === false) {
            return $written;
        }
    }
    
    return $written;
}

?>
